package com.wing.wechat.vo;

import lombok.Data;

import java.util.List;

/**
 * 企业规则信息列表-返回VO
 */
@Data
public class ResponseCorpCheckinGroup {

    /**
     * 打卡规则类型
     */
    private Integer grouptype;

    /**
     * 打卡规则ID
     */
    private Integer groupid;

    /**
     * 打卡规则名称
     */
    private String groupname;

    /**
     * 是否同步法定节假日，true为同步，false为不同步，当前排班不支持
     */
    private Boolean sync_holidays;

    /**
     * 是否打卡必须拍照，true为必须拍照，false为不必须拍照
     */
    private Boolean need_photo;

    /**
     * 是否备注时允许上传本地图片，true为允许，false为不允许
     */
    private Boolean note_can_use_local_pic;

    /**
     * 是否非工作日允许打卡,true为允许，false为不允许
     */
    private Boolean allow_checkin_offworkday;

    /**
     * 是否允许提交补卡申请，true为允许，false为不允许
     */
    private Boolean allow_apply_offworkday;

    /**
     * 打卡地点-WiFi打卡信息
     */
    private List<ResponseUserWifiMacInfo> wifimac_infos;

    /**
     * 打卡地点-位置打卡信息
     */
    private List<ResponseUserLocInfo> loc_infos;

    /**
     * 打卡人员信息
     */
    private ResponseUserRange range;

    /**
     * 创建打卡规则时间，为unix时间戳
     */
    private Integer create_time;

    /**
     * 打卡人员白名单，即不需要打卡人员，需要有设置白名单才能查看
     */
    private List<String> white_users;

    /**
     * 打卡方式，0:手机；2:智慧考勤机；3:手机+智慧考勤机
     */
    private Integer type;

    /**
     * 汇报对象信息
     */
    private ResponseUserReporterInfo reporterinfo;

    /**
     * 加班信息，相关信息需要设置后才能显示
     */
    private ResponseUserOtInfo ot_info;

    /**
     * 每月最多补卡次数，默认-1表示不限制
     */
    private Integer allow_apply_bk_cnt;

    /**
     * 范围外打卡处理方式，0-视为范围外异常，默认值；1-视为正常外勤；2:不允许范围外打卡
     */
    private Integer option_out_range;

    /**
     * 规则创建人userid
     */
    private String create_userid;

    /**
     * 人脸识别打卡开关，true为启用，false为不启用
     */
    private Boolean use_face_detect;

    /**
     * 允许补卡时限，默认-1表示不限制。单位天
     */
    private Integer allow_apply_bk_day_limit;

    /**
     * 规则最近编辑人userid
     */
    private String update_userid;

    /**
     * 排班信息，只有规则为按班次上下班打卡时才有该配置
     */
    private List<ResponseUserSchedule> schedulelist;

    /**
     * 自由签到，上班打卡后xx秒可打下班卡
     */
    private Integer offwork_interval_time;

    /**
     * 补卡指定异常类型，按比特位设置，大端模式，某位bit置位为1表示关闭某类型。从低到高四个比特位分别表示缺卡类型、迟到类型、早退类型、其他异常类型。为默认值0表示所有异常类型均允许补卡
     */
    private Integer buka_restriction;

    /**
     * 自由上下班规则的跨天时间，表示为距离0点的秒数
     */
    private Integer span_day_time;

    /**
     * 自由上下班规则的工作时长（秒），-1表示不限制。
     */
    private Integer standard_work_duration;

    /**
     * 自是否开启审批打卡，若未返回则默认开启
     */
    private Boolean open_sp_checkin;

}
